for _ in range(int(input())):
n = int(input())
a = input()
b = input()
b_modified = list(b)
for i in range(n - 2):
if a[i] == a[i + 2] == '0':
b_modified[i + 1] = '1'
a_modified = list(a)
for i in range(n - 2):
if b_modified[i] == b_modified[i + 2] == '1':
a_modified[i + 1] = '1'
prefix_sum = [0] * (n + 1)
for i in range(1, n + 1):
prefix_sum[i] = prefix_sum[i - 1] + int(a_modified[i - 1])
for _ in range(int(input())):
l, r = map(int, input().split())
res = prefix_sum[r] - prefix_sum[l - 1]
res -= a_modified[l - 1] == '1' and a[l - 1] == '0'
if l < r:
res -= a_modified[r - 1] == '1' and a[r - 1] == '0'
if l + 1 < r:
res -= a_modified[l] == '1' and a[l] == '0' and (b[l - 1] == '0' or (l + 2 == r and b[r - 1] == '0'))
if l + 2 < r:
res -= a_modified[r - 2] == '1' and a[r - 2] == '0' and b[r - 1] == '0'
print(res)
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |
1328A - Divisibility Problem | 339A - Helpful Maths |
4A - Watermelon | 476A - Dreamoon and Stairs |
1409A - Yet Another Two Integers Problem | 977A - Wrong Subtraction |
263A - Beautiful Matrix | 180C - Letter |
151A - Soft Drinking | 1352A - Sum of Round Numbers |
281A - Word Capitalization | 1646A - Square Counting |
266A - Stones on the Table | 61A - Ultra-Fast Mathematician |
148A - Insomnia cure | 1650A - Deletions of Two Adjacent Letters |
1512A - Spy Detected | 282A - Bit++ |
69A - Young Physicist | 1651A - Playoff |
734A - Anton and Danik | 1300B - Assigning to Classes |
1647A - Madoka and Math Dad | 710A - King Moves |
1131A - Sea Battle | 118A - String Task |